package com.eastedu.template.model;

import com.deepoove.poi.config.Configure;
import com.eastedu.report.common.model.parameter.ReportGenerateParameter;
import lombok.Builder;
import lombok.Data;

import java.io.OutputStream;
import java.nio.file.Paths;
import java.util.Map;

/**
 * The interface Report data.
 *
 * @author superman
 */
@Data
@Builder
public class ReportDataContainer {
    /**
     * 参数
     */
    private final ReportGenerateParameter parameter;
    /**
     * 是否开启调试模式
     */
    private final boolean debug;
    /**
     * 任务ID
     */
    private final String taskId;

    /**
     * 模板编码
     */
    private final String templateCode;
    /**
     * 模板文档数据
     */
    private final Map<String, Object> data;

    /**
     * 模板配置, 用于自定义模板样式, 如页眉页脚等
     * 如果不传, 则使用默认配置
     */
    private final Configure configure;
    /**
     * 输出流, 用于自定义输出位置, 如本地文件, 远程文件等
     * 如果不传, 则使用默认输出位置(临时文件)
     */
    private final OutputStream outputStream;


    /**
     * Gets file path.
     *
     * @return the file path
     */
    public String getFilePath() {
        return Paths.get(this.getTemplateCode(), String.valueOf(this.getParameter().getDateCode())).toString();
    }

    /**
     * Gets file name.
     *
     * @return the file name
     */
    public String getFileName() {
        String filepath = String.format("%s应用月度简报(%s).%s", this.getParameter().getSchoolName(), this.getParameter().getSectionName(), ".docx");
        return filepath.replaceAll("\\.+", ".");
    }
}
